package com.niit.gams.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

/**
 * 解决跨域问题。有多种解决方案：
 *   https://zhuanlan.zhihu.com/p/342736192
 *   https://www.cnblogs.com/fswhq/p/16189162.html
 *   1 @CrossOrigin 后端方法级别使用
 *   2 实现WebMvcConfigurer 全局使用
 *   3 Vue中配置
 *   4 Nginx配置解决跨域问题
 */
@Configuration
public class WebConfig implements WebMvcConfigurer {
  @Override
  public void addCorsMappings(CorsRegistry registry) {
    registry.addMapping("/**") //允许跨域的请求路径
            .allowCredentials(true)//是否发送Cookie
            .allowedMethods("*") //允许跨域的请求方法
            .allowedHeaders("*") // 允许跨域的请求头
            .allowedOriginPatterns("*");//允许跨域访问的域名
  }

  //处理前端请求地址和后端图片之间映射关系
  @Override
  public void addResourceHandlers(ResourceHandlerRegistry registry) {
    registry.addResourceHandler("/img/singerPic/**")
            .addResourceLocations("file:"+System.getProperty("user.dir")+System.getProperty("file.separator")+"img"+System.getProperty("file.separator")+"singerPic"+System.getProperty("file.separator"));

  }
}
